package CONTROLADOR;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.table.TableModel;

import MODELO.ModeloCategoria;
import VISTA.frmCategorias;

public class ControladorCategorias implements ActionListener{
	private ModeloCategoria modelo;
	private frmCategorias frmCategorias;
	
	public static void main(String[] args) {
		new ControladorCategorias();
	}
    
	public ControladorCategorias() {
		modelo = new ModeloCategoria();
		this.frmCategorias = new frmCategorias();	
		this.frmCategorias.setVisible(true);
		this.frmCategorias.addlistener(this);
		cargarTabla();
	}
	
	private void cargarTabla() {
		TableModel m = frmCategorias.gettblCategorias().getModel();	
		int i =0;
		while(i< frmCategorias.gettblCategorias().getRowCount()) {
			m.setValueAt("", i, 0);
			m.setValueAt("", i, 1);
			i++;
		}
		Vector<ModeloCategoria> v = modelo.listar();
		i =0;
		for (ModeloCategoria modelo: v) {
			m.setValueAt(modelo.getCodigo(), i, 0);
			m.setValueAt(modelo.getDescripcion(), i, 1);
			i++;
		}
		
	}

	@Override
	public void actionPerformed(ActionEvent evt) {
		
		if(evt.getActionCommand().equals("Nuevo")){
			frmCategorias.habilitarNuevo();
		}
		else if(evt.getActionCommand().equals("Modificar")){
			if(!frmCategorias.getTxtCodigo().getText().isEmpty() && !frmCategorias.getTxtDescripcion().getText().isEmpty())
			{
				modelo.setCodigo(frmCategorias.getTxtCodigo().getText());
				modelo.setDescripcion(frmCategorias.getTxtDescripcion().getText());
				modelo.setStatus("A");
				if(modelo.actualizar()){
					frmCategorias.limpiarCancelar();
					cargarTabla();
					frmCategorias.mostrarMensaje("Categoria actualizada");
				}
				else
					frmCategorias.mostrarMensaje("Codigo registrado");
			} 
			else
				frmCategorias.mostrarMensaje("Campos vacios");
			
			
		}
		else if(evt.getActionCommand().equals("Buscar")){
			if(!frmCategorias.getTxtCodigo().getText().isEmpty())
			{
				modelo.setCodigo(frmCategorias.getTxtCodigo().getText());
				if(modelo.consultar()){
					frmCategorias.bloquearCodigo();
					frmCategorias.getTxtDescripcion().setText(modelo.getDescripcion());
				}
				else
					frmCategorias.mostrarMensaje("Codigo no registrado");
			} 
			else
				frmCategorias.mostrarMensaje("Campos vacios");
			
			
			
		}
		else if(evt.getActionCommand().equals("OK")){
			if(!frmCategorias.getTxtCodigo().getText().isEmpty() && !frmCategorias.getTxtDescripcion().getText().isEmpty())
			{
				modelo.setCodigo(frmCategorias.getTxtCodigo().getText());
				modelo.setDescripcion(frmCategorias.getTxtDescripcion().getText());
				modelo.setStatus("A");
				if(modelo.registar()){
					frmCategorias.limpiarCancelar();
					cargarTabla();
					frmCategorias.mostrarMensaje("Categoria registrada");
				}
				else
					frmCategorias.mostrarMensaje("Codigo registrado");
			} 
			else
				frmCategorias.mostrarMensaje("Campos vacios");
			
			
			
		}
		else if(evt.getActionCommand().equals("Cancelar")){
			frmCategorias.limpiarCancelar();
		}
		
	}
	
	public void okCategorias(){
		
	}
	
	public void okModificarCategorias(boolean modificar){
		if(modificar == true){
			
		}
	}
	
	public void eliminarCategorias(){
		frmCategorias.gettblCategorias().getSelectedRow();
		
	}
	
}

